class A
{
public:
	A() = default;
	~A() = default;
};

int main()
{
	A* pa = new A;
	int* pi = (int*)pa;
	shared_ptr<A> ptr(nullptr);

	int address = reinterpret_cast<int>(pi);

	*(int*)&ptr = address;

	cout << pa << endl;
	cout << ptr.get() << endl;

}